/**
 * 1.文本初始化加载区
 */
$(function() {
    //2：按钮绑定
    $("#btn_search").live("click", function() {
        search(this);
    });
    
    $("#btn_add").live("click", function() {
        modView(this);
    });
    
    //3：其它初始化方法
    pageInit();
});

/**
 * 第一次进入页面时页码列表的初始化
 */
function pageInit() {
	// 1.默认查询参数初始化
	var queryJson = createQueryJson();
	$("#Pagination").data("PD", queryJson);
	// 2.默认分页条数据初始化
//	var pageSize = $("#pageSizeExt").val();
//	$("#pageSize").val(pageSize);
	// 3.选项卡上记录数初始化
	//updateCount(parseInt($("#totalCountExt").val()));
	// 4.分页小方块内容生成
	initPagination(parseInt($("#totalCountExt").val()));
	// 5.
	//var C = $('#resultBody', $(".z_tab_content:visible"));
	dataOptBind();
	search();
}

/**
 * 1.1查询条件 数据准备
 * @param {} thisObj
 * @return {}
 */
function createQueryJson(thisObj) {
	var C=$("#searchForm");
	var queryJson = {
		'dict.paramCode' : $("#paramCode",C).val(),//参数编码
		'dict.paramName' : $("#paramName",C).val(),//参数名称
		'page.pageSize' : $("#pageSize").val(),
		'page.currentPage' : 0,//从1开始
		'Page.orderBy' : $("#orderBy").val(),
		'page.order' : $("#order").val(),
		'pidIsNull':"1"
	};
	queryJson.URL=ctx+"/dict/dictionary!search.action";
	$("#Pagination").data("PD",queryJson);
	return queryJson;
}

/**
 * 2.查询操作
 */
function search(thisObj) {
	//1.生成查询条件
	createQueryJson();
	//2.执行查询操作
	search_in(thisObj);
}

/**
 * 2.查询操作 内部函数
 */
function search_in(thisObj){
	//1.查询数据准备
	//2.执行查询
	//3.查询数据回写  回写时重新写   页码、内容  [点击 搜索、分页搜索]
    var queryJson=ParamData();
	$.ajax({
    	type : "post", 
    	dataType : "json", 
    	url : queryJson.URL,
        data : queryJson,
        success : function(data, textStatus) {
	        if (data.status == "1") {//成功
	            initPagination(data.totalCount);
				createContent(data.result);
			}else{
				//pageNoRollback();
	        	alert("操作失败，请稍后重试！");
	        }
        },
        error:function(){
       	 	//pageNoRollback();
       	 	alert("操作失败，请稍后重试！");
        }
    });
}

/**
 * 2.1查询内容展示
 * @param {} data
 * @return {Boolean}
 */
function createContent(DL) {
	var C = $('#resultBody').empty();
	var tmpHtml=$("#resultTemplate").html();
	
	if (jQuery.isEmptyObject(DL)) {
		return false;
	}
	
	for ( var i = 0; i < DL.length; i++) {
		var RED=DL[i];
		var E=$(tmpHtml);
		$("span[name='paramCode']",E).text(RED.paramCode);
		$("span[name='paramName']",E).text(RED.paramName);
		$("span[name='paramI18nKey']",E).text(RED.paramI18nKey);
		$("span[name='description']",E).text(RED.description);
		$("span[name='createTime']",E).text(RED.createTime);
		$("span[name='optList']",E).attr("objId",RED.id);
		
		C.append(E);
	}
	
	dataOptBind(C);
}

//2.2 新增后的数据显示到列表   两部分内容：初始化记录绑定 和 后ajax 新增记录的绑定 
function dataOptBind(C) {
	$("a[name='delOpt']",C).bind('click',function(){
		delOpt($(this));
	});
	$("a[name='modOpt']",C).bind('click',function(){
		modView($(this));
	});
	$("a[name='previewOpt']",C).bind('click',function(){
		previewOpt($(this));
	});
}

//3.1 删除操作：删除当前记录，并刷新页面[回刷页面时要重新计算分页]
function delOpt(thisObj){
	if(confirm("确认要删除此记录？")){
		var queryJson={"dict.id":$(thisObj).parent().attr("objId")};
    	$.ajax({
	    	type : "post", 
	    	dataType : "json",
	    	url : ctx+"/dict/dictionary!delete.action",
	        data : queryJson,
	         success : function(data, textStatus) {
	         	if (data.status == "1") {//成功
	            	search();
	            }else{
		        	alert("操作失败，请稍后重试！");
		        }
	        },
	        error:function(){
	       	 	alert("操作失败，请稍后重试！");
	        }
	    });
    	search();
	}
}
/**
 * 3.2 转向修改、新增页
 */
function modView(thisObj){
	var objId=$(thisObj).parent().attr("objId");
	$("#searchForm").attr("action",ctx+"/dict/dictionary!input.action"+($.isEmptyObject(objId)?"":("?dict.id="+objId)));
	$("#searchForm").submit();
}

//3.3 预览页
function previewOpt(thisObj){
	
}

//4.表单重置 
function formReset() {
	document.getElementById("editForm").reset();
	$("#id").val("");
}

/**
 * 没有记录的提示内容
 * @param count
 */
function isShowRecordMsg(){
	var count=$("#resultBody tr").size();
	if(count>0){
		$("#noRecordMsg").hide();
	}else{
		$("#noRecordMsg").show();
	}
}

// ------------------- 分页查询 ------------------------

// 初始化分页信息 TC:记录总数
function initPagination(TC,pageNo) {
	var PD=ParamData();
	var pageSize=PD['page.pageSize'];
	var totalPage=Math.ceil(TC/pageSize);
	if(pageNo==undefined||pageNo<=0){
		pageNo=0;
	}else if(pageNo>(totalPage-1)){
		pageNo=totalPage;
	}
	if(TC>0){
		$("#Pagination").show();
	}else{
		$("#Pagination").hide();
	}
	PD['page.total']=pageNo;
	$("#Pagination").pagination(TC, {
		num_edge_entries : 1,
		num_display_entries : 10,
		link_to : 'javascript:void(0)',
		callback : pageSelectCallback,
		items_per_page : $("#pageSize").val(),
		current_page : pageNo,
		next_text : "下一页",
		prev_text : "上一页"
	});
}

//分页回调函数
function pageSelectCallback(page_index, pagination) {
	var queryJson = $("#Pagination").data("PD");
	queryJson['page.pageNo'] = page_index + 1;
	$.ajax({
		type : "post",
		url : queryJson.URL,
		data : queryJson,
		success : function(data, textStatus) {
			if (data.status == "1") {
				createContent(data.result);
			} else {
				alert("抱歉 查询失败，请稍后再试！");
			}
		}
	});
}

// 页码回滚 pageNo:从0开始
function pageNoRollback() {
	var data=ParamData();
	var pageSize=data['page.pageSize'];
	var TC=data['page.total'];
	var pageNo=data['page.currentPage'];
	var totalPage=Math.ceil(TC/pageSize);
	if(pageNo==undefined||pageNo<=0){
		pageNo=0;
	}else if(pageNo>(totalPage-1)){
		pageNo=totalPage;
	}else{
		pageNo=pageNo-1;
	}
	updateQueryJson('page.currentPage',pageNo);
	initPagination(TC,pageNo);
}

//------------------- 工具方法------------------------
// 参数数据的更新    pageNo:从0开始  PD:参数数据
function updateQueryJson(K,V) {
	var data=ParamData();
	data[K]=V;
	$("#Pagination").data("PD",data);
}

// 得到queryJson里指定Key的值
function ParamData(){
	return $("#Pagination").data("PD");
}












